/**
 * Copy文本组件
 * @author SPY
 * @description 用于文本复制到系统的剪切板
 * @date 2019/11/24
 */

import React from 'react';
import { message, Tooltip } from 'antd';
import PropTypes from 'prop-types';
import { CopyToClipboard } from 'react-copy-to-clipboard';

class ReactCopyToClipboard extends React.Component {

    // 定义传入属性
    static propTypes = {
        text: PropTypes.string.isRequired,
    }

    /**
     * 复制时执行函数
     * @param text -- 要复制的文本
     * @param isCopySuccess -- 是否复制成功,格式:bool
     */
    onCopy = (text, isCopySuccess) => {
        isCopySuccess ? message.success('复制成功') : message.warning('复制失败');
    }

    render() {
        const { text, ...restProps } = this.props;
        return (
            <CopyToClipboard
                text={text}
                onCopy={this.onCopy}
            >
                <span style={{ cursor: 'pointer' }} {...restProps}>
                    <Tooltip title='复制到剪切板' placement='right' >
                        {text}
                    </Tooltip>
                </span>
            </CopyToClipboard>
        );
    }
}

export default ReactCopyToClipboard;